﻿using System.ComponentModel.DataAnnotations;
using System.Linq.Expressions;

namespace Common.Infrastructrue
{

    public interface IBaseResponstity<T> where T : class, new()
    {
        //查询所有数据
        Task<IList<T>> GetAllAsync();

        //根据条件查询所有信息
        Task<IList<T>> GetAllAsync(Expression<Func<T, bool>> where);

        //根据条件查询单个信息
        Task<T?> GetAsync(Expression<Func<T, bool>> where);

        //新增数据
        Task<int> InsertAsync(T entity);

        //更新数据
        Task<int> UpdateAsync(T entity);

        //批量添加数据
        Task<int> InsertRangeAsync(IList<T> entities);

        //批量更新数据
        Task<int> UpdateRangeAsync(IList<T> entities);


    }
}
